package org.jeecg.modules.demo.mall.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 优惠券记录表
 * @Author: jeecg-boot
 * @Date: 2023-11-09
 * @Version: V1.0
 */
@Data
@TableName("yx_store_coupon_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "yx_store_coupon_user对象", description = "优惠券记录表")
public class YxStoreCouponUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 优惠券发放记录id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "优惠券发放记录id")
    private Long id;
    /**
     * 兑换的项目id
     */
    @Excel(name = "兑换的项目id", width = 15)
    @ApiModelProperty(value = "兑换的项目id")
    private Integer cid;
    /**
     * 优惠券所属用户
     */
    @Excel(name = "优惠券所属用户", width = 15)
    @ApiModelProperty(value = "优惠券所属用户")
    private Integer uid;
    /**
     * 优惠券名称
     */
    @Excel(name = "优惠券名称", width = 15)
    @ApiModelProperty(value = "优惠券名称")
    private String couponTitle;
    /**
     * 优惠券的面值
     */
    @Excel(name = "优惠券的面值", width = 15)
    @ApiModelProperty(value = "优惠券的面值")
    private BigDecimal couponPrice;
    /**
     * 最低消费多少金额可用优惠券
     */
    @Excel(name = "最低消费多少金额可用优惠券", width = 15)
    @ApiModelProperty(value = "最低消费多少金额可用优惠券")
    private BigDecimal useMinPrice;
    /**
     * 优惠券创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "优惠券创建时间")
    private Date createTime;
    /**
     * updateTime
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "updateTime")
    private Date updateTime;
    /**
     * 优惠券结束时间
     */
    @Excel(name = "优惠券结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "优惠券结束时间")
    private Date endTime;
    /**
     * 使用时间
     */
    @Excel(name = "使用时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "使用时间")
    private Date useTime;
    /**
     * 获取方式
     */
    @Excel(name = "获取方式", width = 15)
    @ApiModelProperty(value = "获取方式")
    private String type;
    /**
     * 状态（0：未使用，1：已使用, 2:已过期）
     */
    @Excel(name = "状态（0：未使用，1：已使用, 2:已过期）", width = 15)
    @ApiModelProperty(value = "状态（0：未使用，1：已使用, 2:已过期）")
    @Dict(dicCode = "Mer_YxStoreCouponUser_status")
    private Integer status;
    /**
     * 是否有效
     */
    @Excel(name = "是否有效", width = 15)
    @ApiModelProperty(value = "是否有效")
    private Integer isFail;
    /**
     * 是否删除（0 未删除 1 删除）
     */
    @Excel(name = "是否删除（0 未删除 1 删除）", width = 15)
    @ApiModelProperty(value = "是否删除（0 未删除 1 删除）")
    @TableLogic
    private Integer isDel;
    /**
     * 数量
     */
    @Excel(name = "数量", width = 15)
    @ApiModelProperty(value = "数量")
    private Integer num;

    /**
     * 开始时间
     */
    @Excel(name = "优惠券结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 优惠券类型（0 满减券  1 折扣券 3 体验券）
     */
    @Excel(name = "优惠券类型（0 满减券  1 折扣券 3 体验券）", width = 15)
    @ApiModelProperty(value = "优惠券类型（0 满减券  1 折扣券 3 体验券）")
    private Integer couponType;
    /**
     * 折扣/满减金额
     */
    @Excel(name = "折扣/满减金额）", width = 15)
    @ApiModelProperty(value = "折扣/满减金额）")
    private BigDecimal discountPrice;
    /**
     * 订单编号
     */
    @Excel(name = "订单编号）", width = 15)
    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    /**
     * 门店类型 0 平台   1   商家
     **/
    @TableField(exist = false)
    private Integer merType;

    /**
     * 门店id
     */
    @TableField(exist = false)
    private String merId;

    /**
     * 商品id
     */
    @TableField(exist = false)
    private String productId;

    /**
     * 0通用  1 商品
     */
    @TableField(exist = false)
    private Integer userCouponType;

    /**
     * 最优惠的金额
     */
    @TableField(exist = false)
    private BigDecimal maxPrice;

    /**
     * 是否可以使用
     */
    @TableField(exist = false)
    private Integer isUsage;

    /**
     * 优惠券名称
     */
    @TableField(exist = false)
    private String CName;

    /**
     * 用户名称
     */
    @TableField(exist = false)
    private String UName;


    /**
     * 是否制定商品（0 所有商品  1 指定商品）
     */
    @TableField(exist = false)
    private Integer isProduct;



}
